EC2 Apache 실습 - 패키지 매니저 vs Docker 비교 (Ubuntu)

주의사항

1단계: 패키지 매니저를 통한 Apache 설치

#!/bin/bash
# Package manager Apache installation

echo "Starting Apache installation via package manager..."

sudo apt-get update -y
sudo apt-get install -y apache2
sudo systemctl start apache2
sudo systemctl enable apache2

echo "Apache installation complete!"
echo "Access URL: http://YOUR_EC2_PUBLIC_IP/"

2단계: 커스텀 index 페이지 만들기

#!/bin/bash
# Create custom index page

echo "<h1>Apache via Package Manager</h1>" | sudo tee /var/www/html/index.html
echo "<p>Port: 80</p>" | sudo tee -a /var/www/html/index.html

echo "Custom page created!"

3단계: Docker 설치

#!/bin/bash
# Docker installation

echo "Starting Docker installation..."

sudo apt-get update -y
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -a -G docker $USER

echo "Docker installation complete!"
echo "Re-login required (or run: newgrp docker)"
2026-10 갱신

특정 계정명(tbit)으로 하드코딩되어 있던 부분을 현재 로그인 사용자인 $USER로 바꿨습니다. 실습 계정명이 달라도 그대로 사용할 수 있습니다.

4단계: Docker Apache 컨테이너 실행

#!/bin/bash
# Run Docker Apache container

echo "Starting Docker Apache container..."

docker run -d -p 8080:80 --name my-apache httpd:2.4

echo "Docker Apache started!"
echo "Access URL: http://YOUR_EC2_PUBLIC_IP:8080/"

5단계: Docker 컨테이너 커스텀 페이지 만들기

#!/bin/bash
# Create custom page for Docker container

echo "<h1>Apache via Docker</h1>" > index.html
echo "<p>Port: 8080</p>" >> index.html

docker cp index.html my-apache:/usr/local/apache2/htdocs/
rm index.html

echo "Docker custom page created!"

6단계: 컨테이너 내부 접근 (exec 사용)

#!/bin/bash
# Container access and useful commands

echo "Container access method:"
echo "docker exec -it my-apache /bin/bash"
echo ""
echo "Useful commands:"
echo "docker ps                    # Check running containers"
echo "docker logs my-apache        # Check logs"
echo "docker stop my-apache        # Stop container"
echo "docker start my-apache       # Start container"
echo "docker restart my-apache     # Restart container"

최종 확인


전체 정리 (실습 완료 후)

#!/bin/bash
# Complete cleanup - Apache and Docker

echo "Starting complete cleanup..."

# Stop and remove all Docker containers
docker stop $(docker ps -aq) 2>/dev/null
docker rm $(docker ps -aq) 2>/dev/null
docker rmi $(docker images -q) 2>/dev/null
docker system prune -af

# Remove Docker completely
sudo systemctl stop docker
sudo apt-get remove -y docker.io
sudo apt-get autoremove -y
sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker

# Remove Apache2
sudo systemctl stop apache2
sudo apt-get remove --purge -y apache2
sudo apt-get autoremove -y
sudo rm -rf /var/www/html/*

echo "Complete cleanup finished!"
echo "System restored to original state."
2026-10 갱신

3단계에서 Ubuntu 배포판 패키지 docker.io로 설치했으므로 제거 대상도 docker.io만 남겼습니다. 기존처럼 docker-ce docker-ce-cli containerd.io를 함께 적으면, Docker 공식 저장소를 등록하지 않은 환경에서는 E: Unable to locate package 오류로 apt-get remove 전체가 중단되어 아무것도 제거되지 않습니다.


관련 문서